
#include "utility.hpp"

template <>
void printArray<real_t>(std::ostream &os, const VarArray<real_t, 2, 0> &arr,
                        std::string arrayName)
{
  int sz1 = arr.Dim(0);
  int sz2 = arr.Dim(1);
  os << "\n"
     << arrayName << "(dim1 = " << sz1 << ", dim2 = " << sz2 << ")\n";
  for (int j = 0; j < sz2; ++j)
  {
    for (int i = 0; i < sz1; ++i)
    {

      os << "[" << std::setw(3) << i << "," << std::setw(3) << j << "]"
         << arr(i, j) << "  ";
    }
    os << "\n";
  }
}

// 不能放在 hpp 文件中 要不然会出现重复定义的错误
const int Transij::transI[4]{0, 1, 1, 0};
const int Transij::transJ[4]{1, 0, 0, 1};